#include <xen/irq.h>
#include <xen/domain_page.h>
#include <xen/guest_access.h>
+#include <xen/keyhandler.h>
#include <asm/event.h>
#include <asm/page.h>
#include <asm/current.h>
#if SHADOW2_AUDIT
int shadow2_audit_enable = 0;
-#endif
+
+static void shadow2_audit_key(unsigned char key)
+{
+ shadow2_audit_enable = !shadow2_audit_enable;
+ printk("%s shadow2_audit_enable=%d\n",
+ __func__, shadow2_audit_enable);
+}
+
+static int __init shadow2_audit_key_init(void)
+{
+ register_keyhandler(
+ 'O', shadow2_audit_key, "toggle shadow2 audits");
+ return 0;
+}
+__initcall(shadow2_audit_key_init);
+#endif /* SHADOW2_AUDIT */
static void sh2_free_log_dirty_bitmap(struct domain *d);
ft_demand_write = FETCH_TYPE_DEMAND | FETCH_TYPE_WRITE,
} fetch_type_t;
-#ifndef NDEBUG
+#ifdef DEBUG_TRACE_DUMP
static char *fetch_type_names[] = {
[ft_prefetch] "prefetch",
[ft_demand_read] "demand read",
bit. */
}
-#ifndef NDEBUG
-static void debugtrace_key(unsigned char key)
-{
- debugtrace_toggle();
-}
-
-static void shadow2_audit_key(unsigned char key)
-{
- extern int shadow2_audit_enable;
-
- shadow2_audit_enable = !shadow2_audit_enable;
- printk("%s shadow2_audit_enable=%d\n",
- __func__, shadow2_audit_enable);
-}
-#endif
-
void initialize_keytable(void)
{
open_softirq(KEYPRESS_SOFTIRQ, keypress_softirq);
register_keyhandler(
't', read_clocks, "display multi-cpu clock info");
-#ifndef NDEBUG
- register_keyhandler(
- 'O', shadow2_audit_key, "toggle shadow2 audits");
- register_keyhandler(
- 'T', debugtrace_key, "toggle debugtrace to console/buffer");
-#endif
-
#ifdef PERF_COUNTERS
register_keyhandler(
'p', perfc_printall, "print performance counters");
for ( j = 0; j < (1 << extent_order); j++ )
guest_physmap_add_page(d, gpfn + j, mfn + j);
}
- else if ( unlikely(shadow2_mode_translate(d)) )
- {
- for ( j = 0; j < (1 << extent_order); j++ )
- shadow2_guest_physmap_add_page(d, gpfn + j, mfn + j);
- }
else
{
for ( j = 0; j < (1 << extent_order); j++ )
(unsigned long)page->count_info, page->u.inuse.type_info);
}
- shadow2_guest_physmap_remove_page(d, gmfn, mfn);
+ guest_physmap_remove_page(d, gmfn, mfn);
put_page(page);
if ( (d = find_domain_by_id(op.domid)) == NULL )
return -ESRCH;
- if ( !(shadow_mode_translate(d) || shadow2_mode_translate(d)) )
+ if ( !shadow_mode_translate(d) )
{
put_domain(d);
return -EINVAL;
* **************************************************************
*/
-#ifndef NDEBUG
+#ifdef DEBUG_TRACE_DUMP
/* Send output direct to console, or buffer it? */
static volatile int debugtrace_send_to_console;
printk("debugtrace_dump() finished\n");
}
-void debugtrace_toggle(void)
+static void debugtrace_toggle(void)
{
unsigned long flags;
spin_unlock_irqrestore(&debugtrace_lock, flags);
}
+static void debugtrace_key(unsigned char key)
+{
+ debugtrace_toggle();
+}
+
static int __init debugtrace_init(void)
{
int order;
debugtrace_bytes = bytes;
+ register_keyhandler(
+ 'T', debugtrace_key, "toggle debugtrace to console/buffer");
+
return 0;
}
__initcall(debugtrace_init);
void cmdline_parse(char *cmdline);
-#ifndef NDEBUG
-extern void debugtrace_toggle(void);
+/*#define DEBUG_TRACE_DUMP*/
+#ifdef DEBUG_TRACE_DUMP
extern void debugtrace_dump(void);
extern void debugtrace_printk(const char *fmt, ...);
#else